package cn.baiweigang.uu.model;

import cn.baiweigang.uu.utils.StringUtil;

import java.math.BigDecimal;
import java.util.HashMap;

/**
 * @author 玄罗
 * @date 2021/02/07
 */
public class DataMap extends HashMap<String, Object> {
    /**
     * @param key
     * @return
     */
    public String getStringValue(String key) {
        key = convertKey(key);
        String value = null;
        if (this.containsKey(key)) {
            Object obj = this.get(key);
            if (null == obj) {
                return null;
            } else if (obj instanceof BigDecimal) {
                value = ((BigDecimal) obj).toString();
            } else {
                value = String.valueOf(obj);
            }
        }

        return value;
    }

    public double getDoubleValue(String key) {
        key = convertKey(key);
        String stringValue = this.getStringValue(key);
        if (StringUtil.isBlank(stringValue)) return 0;
        double value = Double.parseDouble(stringValue);
        return value;
    }

    /**
     * @param key
     * @return
     */
    public int getIntValue(String key) {
        key = convertKey(key);
        String stringValue = this.getStringValue(key);
        int value = Integer.parseInt(stringValue);

        return value;
    }

    /**
     * @param key
     * @return
     */
    public long getLongValue(String key) {
        key = convertKey(key);
        String stringValue = this.getStringValue(key);
        long value = Long.parseLong(stringValue);

        return value;
    }

    /**
     * @param key
     * @return
     */
    private static String convertKey(String key) {
        return StringUtil.isBlank(key) ? null : key;
    }

    public Object get(String key) {
        return super.get(key);
    }
}
